/*-----------------------------------------------------------------------------------------------
// Copyright (C) 2016 华跃博弈科技有限公司 
//
// 文件名：        IRepository.cs
// 文件功能描述：   持久化接口
//
// 
// 创建标识：       庞永飞  2016-04-24
//
// 修改标识：
// 修改描述：
//
// 备注：	
// 				
//-----------------------------------------------------------------------------------------------*/

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace HYBY.Task.Repository {

  public interface IRepository<TEntity> where TEntity : class,new() {

    /// <summary>
    /// 更新实体
    /// </summary>
    /// <param name="entity">entity</param>
    bool Save(TEntity entity);

    /// <summary>
    ///  删除实体 
    /// </summary>
    /// <param name="entity">entity</param>
    bool Delete(TEntity entity);

    /// <summary>
    ///  逻辑删除实体 
    /// </summary>
    /// <param name="entity">entity</param>
    bool LogicalDelete(TEntity entity);

    /// <summary>
    /// 根据主键获取实体
    /// </summary>
    /// <param name="Id">主键ID</param>
    /// <returns>具体实体对象实例</returns>
    TEntity Get(object Id);
  }

}